IP Networks are becoming more sophisticated in terms of providing more than just best-effort services. This is possible because of a new generation of IP routers and switches that take advantage of the embedded base of ATM switches in a service provider's network. As a result, a service provider can provide value-added IP services to their customers. Examples of such value-added services include Virtual Private Network (VPN) services, managed bandwidth services, managed firewall services, traffic filtering services and so on. So far there are two main categories of VPN: (1) Secure VPNs and (2) VPNs with Quality of Service. Secure VPNs provide secure connectivity to a multi-site customer network while VPNs with Quality of Service provide connectivity with some guarantees in bandwidth. Many people are trying to extend Quality of Service VPNs to provide some assurances in terms of bounded delay and loss.
Real-time multi-user distributed applications, such as online multi-player games or distributed interactive simulations (DIS), are becoming increasingly popular due to the prolificacy (proliferation) of broadband Internet access. Though online multi-player gaming is enjoying its increasing popularity, there is still much room for performance improvement, especially in cases when players in widely distributed geographical locations play a game together. Currently each game application deals with network performance variants at the application level, a practice that yields drastically different and often unsatisfactory gaming experiences. To gaming network service providers, a better network support for more consistent gaming performance could attract more subscribers and/or more network usage per subscriber, thus generate more revenue.
Most online multi-player games today are implemented based on a client/server model. In this model, a game server is set up and all players logon to this game server to play the game against each other. Player actions are forwarded from each player station to the game server in messages. The game server then processes the actions in sequence, and notifies player stations the effects of player actions, also in messages. The only communication in the system is between the game server and the player stations. Player stations themselves do not send messages to one another. Neither do they play any active roll in deciding the ordering of actions in the game.
With a client/server model it is easier to maintain a consistent game state at all player stations. Nevertheless, best-effort support of current internet traffic cannot offer reasonable, expected network delay and packet loss bounds. As a result, players often experience erratic object movement and stalled game progress. In addition, because the game server is in charge of updating global states, players will not see each state change from the game server until after certain network delay. Since this network delay is different for different players, unfairness is created among players in accessing the latest state.
Furthermore, the messages carrying player actions will take different time to reach the game server. Without compensating for execution environment differences, a player further away from the game server will suffer from longer message delay, even if he/she is the fastest player to react to state changes. A need therefore exists to provide improved support of real-time multi-user distributed applications, such as on-line gaming.